NetUserChangePassword (netapi32)
Last changed: -91.118.56.136

.
Summary
Provide a user account and its existing password, and this API allows you to choose a new password for the account.

C# Signature:

[DllImport("netapi32.dll", CharSet=CharSet.Unicode, CallingConvention=CallingConvention.StdCall,

SetLastError=true )]

static extern uint NetUserChangePassword (

[MarshalAs(UnmanagedType.LPWStr)] string domainname,

[MarshalAs(UnmanagedType.LPWStr)] string username,

[MarshalAs(UnmanagedType.LPWStr)] string oldpassword,

[MarshalAs(UnmanagedType.LPWStr)] string newpassword

);

VB Signature:

<DllImport("netapi32.dll", CallingConvention:=CallingConvention.StdCall, CharSet:=CharSet.Unicode)> _

Public Shared Function NetUserChangePassword( _

    <MarshalAs(UnmanagedType.LPWStr)> ByVal Domain As String, _
    <MarshalAs(UnmanagedType.LPWStr)> ByVal User As String, _
    <MarshalAs(UnmanagedType.LPWStr)> ByVal OldPass As String, _
    <MarshalAs(UnmanagedType.LPWStr)> ByVal NewPass As String) As Integer

End Function

User-Defined Types:

None.

Alternative Managed API:

Do you know one? Please contribute it!

Notes:

None.

Tips & Tricks:

To change the password of the current user (or currently impersonated user), pass null for the first two args.

Sample Code:

VB.NET

139: Dim sPDCName, sUserName, sOldPW, sNewPW As String

140: intPassRetCode = NetUserChangePassword(sPDCName, sUserName, sOldPW, sNewPW)

141: If intPassRetCode <> 0 Then

142: 'throw error'

143: End If

Documentation